<HTML>
<HEAD>
<TITLE>mdp options</TITLE>
<LINK rel=stylesheet href="style.css" type="text/css">
<BODY text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990000" alink="#FF0000">
<TABLE WIDTH="98%" NOBORDER >
<TR><TD WIDTH=400>
<TABLE WIDTH=400 NOBORDER>
<TD WIDTH=116>
<a href="http://www.gromacs.org/"><img SRC="../images/gmxlogo_small.jpg"BORDER=0 height=133 width=116></a></td>
<td ALIGN=LEFT VALIGN=TOP WIDTH=280><br><h2>mdp options</h2><font size=-1><A HREF="../online.html">Main Table of Contents</A></font><br><br></td>
</TABLE></TD><TD WIDTH="*" ALIGN=RIGHT VALIGN=BOTTOM><p> </p><B>VERSION 4.0<br>
Sun 18 Jan 2009</B></td></tr></TABLE>
<HR>

<!-- 

PLEASE BE VERY CAREFUL WHEN EDITING THIS FILE: IT MUST BE
AUTOMATICALLY PARSED BY A SIMPLE SCRIPT (mkmdp in the GROMACS manual repository) TO PRODUCE A
CORRESPONDING LATEX FILE.

IF YOU'RE NOT SURE ABOUT WHAT YOU'RE DOING, DON'T DO IT!

-->

<H3>Table of Contents</H3>

<ul>
<li><A HREF="#general"><b>General remarks</b></A>
<p> </p>
<li><A HREF="#pp"><b>preprocessing</b></A> (include, define)
<li><A HREF="#run"><b>run control</b></A> (integrator, tinit, dt, nsteps, init_step, comm_mode, nstcomm, comm_grps)
<li><A HREF="#ld"><b>langevin dynamics</b></A> (bd_fric, ld_seed)
<li><A HREF="#em"><b>energy minimization</b></A> (emtol, emstep, nstcgsteep)
<li><a HREF="#xmdrun"><b>shell molecular dynamics</b></a>(emtol,niter,fcstep)
<li><a HREF="#tpi"><b>test particle insertion</b></a>(rtpi)
<li><A HREF="#out"><b>output control</b></A> (nstxout, nstvout, nstfout, nstlog, nstcalcenergy, nstenergy, nstxtcout, xtc_precision, xtc_grps, energygrps)
<li><A HREF="#nl"><b>neighbor searching</b></A> (nstlist, ns_type, pbc, periodic_molecules, rlist, rlistlong)
<li><A HREF="#el"><b>electrostatics</b></A> (coulombtype, rcoulomb_switch, rcoulomb, epsilon_r, epsilon_rf)
<li><A HREF="#vdw"><b>VdW</b></A> (vdwtype, rvdw_switch, rvdw, DispCorr)
<li><A HREF="#table"><b>tables</b></A> (table-extension, energygrp_table)
<li><A HREF="#ewald"><b>Ewald</b></A> (fourierspacing, fourier_nx, fourier_ny, fourier_nz, pme_order, ewald_rtol, ewald_geometry, epsilon_surface, optimize_fft)
<li><A HREF="#tc"><b>Temperature coupling</b></A> (tcoupl, nsttcouple, tc_grps, tau_t, ref_t)
<li><A HREF="#pc"><b>Pressure coupling</b></A> (pcoupl, pcoupltype,
  nstpcouple, tau_p, compressibility, ref_p, refcoord_scaling)
<li><A HREF="#sa"><b>simulated annealing</b></A> (annealing, annealing_npoints, annealing_time, annealing_temp)
<li><A HREF="#vel"><b>velocity generation</b></A> (gen_vel, gen_temp, gen_seed)
<li><A HREF="#bond"><b>bonds</b></A> (constraints, constraint_algorithm, continuation, shake_tol, lincs_order, lincs_iter, lincs_warnangle, morse)
<li><A HREF="#egexcl"><b>Energy group exclusions</b></A> (energygrp_excl)
<li><A HREF="#walls"><b>Walls</b></A> (nwall, wall_type, wall_r_linpot, wall_atomtype,
wall_density, wall_ewald_zfac)
<li><A HREF="#pull"><b>COM pulling</b></A> (pull, ...)
<li><A HREF="#nmr"><b>NMR refinement</b></A> (disre, disre_weighting, disre_mixed, disre_fc, disre_tau, nstdisreout, orire, orire_fc, orire_tau, orire_fitgrp, nstorireout)
<li><A HREF="#free"><b>Free Energy calculations</b></A> (free_energy, init_lambda, delta_lambda, sc_alpha, sc_power, sc_sigma, couple-moltype, couple-lambda0, couple-lambda1, couple-intramol)
<li><A HREF="#neq"><b>Non-equilibrium MD</b></A> (acc_grps, accelerate, freezegrps, freezedim, cos_acceleration, deform)
<li><A HREF="#ef"><b>Electric fields</b></A> (E_x, E_xt, E_y, E_yt, E_z, E_zt )
<li><A HREF="#qmmm"><b>Mixed quantum/classical dynamics</b></A> (QMMM, QMMM-grps, QMMMscheme, QMmethod, QMbasis, QMcharge, Qmmult, CASorbitals, CASelectrons, SH)
<li><A HREF="#gbsa"><b>Implicit solvent</b></A> (implicit_solvent, gb_algorithm, nstgbradii, rgbradii, gb_epsilon_solvent, gb_saltconc, gb_obc_alpha, gb_obc_beta, gb_obc_gamma, gb_dielectric_offset, sa_algorithm, sa_surface_tension)   
<li><A HREF="#user"><b>User defined thingies</b></A> (user1_grps, user2_grps, userint1, userint2, userint3, userint4, userreal1, userreal2, userreal3, userreal4)
<li><A HREF="#idx"><b>Index</b></A>
</ul>
</P>

<HR>

<A NAME="general"><br>
<h3>General</h3>

<P>
Default values are given in parentheses. The first option in
the list is always the default option. Units are given in 
square brackets The difference between a dash and an underscore 
is ignored. </P>

<P>
A <a href="mdp.html">sample <TT>.mdp</TT> file</a> is
available. This should be appropriate to start a normal
simulation. Edit it to suit your specific needs and desires. </P>

<A NAME="pp"><br>
<hr>
<h3>Preprocessing</h3>

<dl>
<dt><b>include:</b></dt>
<dd>directories to include in your topology. Format: 
<PRE>-I/home/john/mylib -I../otherlib</PRE></dd>
<dt><b>define:</b></dt>
<dd>defines to pass to the preprocessor, default is no defines. You can use
any defines to control options in your customized topology files. Options
that are already available by default are:
<dd><dl compact>
<dt>-DFLEXIBLE</dt>
<dd>Will tell <tt>grompp</tt> to include flexible water in stead of rigid water into your
topology, this can be useful for normal mode analysis.</dd>
<dt>-DPOSRES</dt>
<dd>Will tell <tt>grompp</tt> to include posre.itp into your topology, used for
<!--Idx-->position restraints<!--EIdx-->.</dd>
</dl>
</dl>

<A NAME="run"><br>
<hr>
<h3>Run control</h3>

<dl>
<dt><b>integrator:</b> (Despite the name, this list includes algorithms that are not actually integrators. <tt>steep</tt> and all entries following it are in this category)</dt>
<dd><dl compact>
<dt><b>md</b></dt>
<dd>A <!--Idx-->leap-frog<!--EIdx--> algorithm for integrating Newton's
equations of motion.</dd>
<dt><b>md-vv</b></dt>
<dd>A velocity Verlet algorithm for integrating Newton's equations of motion.
For constant NVE simulations started from corresponding points in the same trajectory, the trajectories 
are analytically, but not binary, identical to the <b>md</b> leap-frog integrator.  The the kinetic
energy, which is determined from the whole step velocities and is therefore
slightly too high. The advantage of this integrator is more accurate,
reversible Nose-Hoover and Parrinello-Rahman coupling integration
based on Trotter expansion, as well as (slightly too small) full step velocity
output. This all comes at the cost off extra computation, especially with
constraints and extra communication in parallel. Note that for nearly all
production simulations the <b>md</b> integrator is accurate enough.
</dd>
<dt><b>md-vv-avek</b></dt>
<dd>A velocity Verlet algorithm identical to <b>md-vv</b>, except that
the kinetic energy is determined as the average of
the two half step kinetic energies as in the <b>md</b> integrator, and this thus more accurate.
With Nose-Hoover and/or Parrinello-Rahman coupling this comes with
a slight increase in computational cost.
</dd>
<dt><b>sd</b></dt>
<dd> An accurate leap-frog stochastic dynamics integrator.
Four Gaussian random number are required
per integration step per degree of freedom. With constraints,
coordinates needs to be constrained twice per integration step.
Depending on the computational cost of the force calculation,
this can take a significant part of the simulation time.
The temperature for one or more groups of atoms
(<b><A HREF="#tc">tc_grps</A></b>)
is set with <b><A HREF="#tc">ref_t</A></b> [K],
the inverse friction constant for each group is set with
<b><A HREF="#tc">tau_t</A></b> [ps].
The parameter <b><A HREF="#tc">tcoupl</A></b> is ignored.
The random generator is initialized with <b><A HREF="#ld">ld_seed</A></b>.
When used as a thermostat, an appropriate value for <b>tau_t</b> is 2 ps,
since this results in a friction that is lower than the internal friction
of water, while it is high enough to remove excess heat
(unless <b>cut-off</b> or <b>reaction-field</b> electrostatics is used).
NOTE: temperature deviations decay twice as fast as with
a Berendsen thermostat with the same <b>tau_t</b>.</dd>
<dt><b>sd1</b></dt>
<dd> An efficient leap-frog stochastic dynamics integrator.
This integrator is equivalent to <b>sd</b>, except that it requires
only one Gaussian random number and one constraint step.
This integrator is less accurate.
For water the relative error in the temperature with this integrator
is 0.5 <b>delta_t</b>/<b>tau_t</b>, but for other systems it can be higher.
Use with care and check the temperature.</dd>
<dt><b>bd</b></dt>
<dd>An Euler integrator for Brownian or position Langevin dynamics, the
velocity is the force divided by a friction coefficient 
(<b><A HREF="#ld">bd_fric</A></b> [amu ps<sup>-1</sup>])
plus random thermal noise (<b><A HREF="#tc">ref_t</A></b>).
When <b><A HREF="#ld">bd_fric</A></b><tt>=0</tt>, the friction coefficient for each
particle is calculated as mass/<b><A HREF="#tc">tau_t</A></b>, as for the
integrator <tt>sd</tt>.
The random generator is initialized with <b><A HREF="#ld">ld_seed</A></b>.</dd>

<dt><b>steep</b></dt>
<dd>A <!--Idx-->steepest descent<!--EIdx--> algorithm for energy
minimization. The maximum step size is <b><A HREF="#em">emstep</A></b>
[nm], the tolerance is <b><A HREF="#em">emtol</A></b> [kJ
mol<sup>-1</sup> nm<sup>-1</sup>].</dd>
<dt><b>cg</b></dt>
<dd>A <!--Idx-->conjugate gradient<!--EIdx--> algorithm for energy
minimization, the tolerance is <b>emtol</b> [kJ mol<sup>-1</sup>
nm<sup>-1</sup>]. CG is more efficient when a steepest descent step
is done every once in a while, this is determined by 
<b><A HREF="#em">nstcgsteep</A></b>.
For a minimization prior to a normal mode analysis, which requires
a very high accuracy, GROMACS should be compiled in double precision.</dd>
<dt><b>l-bfgs</b></dt>
<dd>A <!--Idx-->quasi-Newtonian<!--EIdx--> algorithm for energy minimization
according to the low-memory Broyden-Fletcher-Goldfarb-Shanno approach.
In practice this seems to converge faster than Conjugate Gradients, but due
to the correction steps necessary it is not (yet) parallelized.
</dd>
<dt><b>nm</b></dt>
<dd><!--Idx-->Normal mode analysis<!--EIdx--> is performed
on the structure in the <tt>tpr</tt> file. GROMACS should be
compiled in double precision.</dd>
<dt><b>tpi</b></dt>
<dd> Test particle insertion. The last molecule in the topology
is the test particle. A trajectory should be provided with
the <tt>-rerun</tt> option of <tt>mdrun</tt>. This trajectory
should not contain the molecule to be inserted. Insertions
are performed <b>nsteps</b> times in each frame at random locations
and with random orientiations of the molecule. When <b>nstlist</b>
is larger than one, <b>nstlist</b> insertions are performed
in a sphere with radius <b><A HREF="#tpi">rtpi</A></b>
around a the same random location using the same neighborlist
(and the same long-range energy when <b>rvdw</b> or <b>rcoulomb</b>&gt;<b>rlist</b>,
which is only allowed for single-atom molecules).
Since neighborlist construction is expensive, one can perform several
extra insertions with the same list almost for free.
The random seed is set with <b><A HREF="#ld">ld_seed</A></b>.
The temperature for the Boltzmann weighting is set with
<b><A HREF="#tc">ref_t</A></b>, this should match the temperature
of the simulation of the original trajectory.
Dispersion correction is implemented correctly for tpi.
All relevant quantities are written to the file specified with
the <tt>-tpi</tt> option of <tt>mdrun</tt>.
The distribution of insertion energies is written to the file specified with
the <tt>-tpid</tt> option of <tt>mdrun</tt>.
No trajectory or energy file is written.
Parallel tpi gives identical results to single node tpi.
For charged molecules, using PME with a fine grid is most accurate
and also efficient, since the potential in the system only needs
to be calculated once per frame.
</dd>
<dt><b>tpic</b></dt>
<dd> Test particle insertion into a predefined cavity location.
The procedure is the same as for <b>tpi</b>, except that one coordinate
extra is read from the trajectory, which is used as the insertion location.
The molecule to be inserted should be centered at 0,0,0. Gromacs does
not do this for you, since for different situations a different
way of centering might be optimal.
Also <b><A HREF="#tpi">rtpi</A></b> sets the radius for the sphere
around this location. Neighbor searching is done only once per frame,
<b>nstlist</b> is not used.
Parallel tpic gives identical results to single node tpic.
</dl>

<dt><b>tinit: (0) [ps]</b></dt>
<dd>starting time for your run (only makes sense for integrators <tt>md</tt>,
<tt>sd</tt> and <tt>bd</tt>)</dd>
<dt><b>dt: (0.001) [ps]</b></dt></dd>
<dd>time step for integration (only makes sense for integrators <tt>md</tt>,
<tt>sd</tt> and <tt>bd</tt>)</dd>
<dt><b>nsteps: (0)</b></dt>
<dd>maximum number of steps to integrate or minimize, -1 is no maximum</dd>
<dt><b>init_step: (0)</b></dt>
<dd>The starting step.
The time at an step i in a run is calculated as: t = <tt>tinit</tt> + <tt>dt</tt>*(<tt>init_step</tt> + i).
The free-energy lambda is calculated as: lambda = <tt>init_lambda</tt> + <tt>delta_lambda</tt>*(<tt>init_step</tt> + i).
Also non-equilibrium MD parameters can depend on the step number.
Thus for exact restarts or redoing part of a run it might be necessary to
set <tt>init_step</tt> to the step number of the restart frame.
<tt>tpbconv</tt> does this automatically.
</dd>
<dt><b>comm_mode:</b></dt>
<dd><dl compact>
<dt><b>Linear</b></dt>
<dd>Remove center of mass translation</dd>
<dt><b>Angular</b></dt>
<dd>Remove center of mass translation and rotation around the center of mass
</dd>
<dt><b>No</b></dt>
<dd>No restriction on the center of mass motion
</dl></dd>
<dt><b>nstcomm: (10) [steps]</b></dt>
<dd>frequency for center of mass motion removal</dd>
<dt><b>comm_grps:</b></dt>
<dd>group(s) for center of mass motion removal, default is the whole system</dd>
</dl>

<A NAME="ld"><br>
<hr>
<h3><!--Idx-->Langevin dynamics<!--EIdx--></h3>

<dl>
<dt><b>bd_fric: (0) [amu ps<sup>-1</sup>]</b></dt>
<dd>Brownian dynamics friction coefficient.
When <b>bd_fric</b><tt>=0</tt>, the friction coefficient for each
particle is calculated as mass/<b><A HREF="#tc">tau_t</A></b>.</dd>
<dt><b>ld_seed: (1993) [integer]</b></dt>
<dd>used to initialize random generator for thermal noise
for stochastic and Brownian dynamics.
When <b>ld_seed</b> is set to -1, the seed is calculated from the process ID.
When running BD or SD on multiple processors, each processor uses a seed equal
to <b>ld_seed</b> plus the processor number.</dd>
</dl>

<A NAME="em"><br>
<hr>
<h3><!--Idx-->Energy minimization<!--EIdx--></h3>
<dl>
<dt><b>emtol: (10.0) [kJ mol<sup>-1</sup> nm<sup>-1</sup>]</b></dt>
<dd>the minimization is converged when the maximum force is smaller than 
this value</dd>
<dt><b>emstep: (0.01) [nm]</b></dt>
<dd>initial step-size</dd>
<dt><b>nstcgsteep: (1000) [steps]</b></dt>
<dd>frequency of performing 1 steepest descent step while doing
conjugate gradient energy minimization.</dd>
<dt><b>nbfgscorr: (10)</b></dt>
<dd>Number of correction steps to use for L-BFGS minimization. A higher
number is (at least theoretically) more accurate, but slower.</dd>
</dl>

<A NAME="xmdrun"><br>
<hr>
<h3><!--Idx-->Shell Molecular Dynamics<!--EIdx--></h3> When shells or
flexible constraints are present in the system the positions of the shells
and the lengths of the flexible constraints are optimized at
every time step until either the RMS force on the shells and constraints
is less than emtol, or a maximum number of iterations (niter) has been reached
<dl>
<dt><b>emtol: (10.0) [kJ mol<sup>-1</sup> nm<sup>-1</sup>]</b></dt>
<dd>the minimization is converged when the maximum force is smaller than 
this value. For shell MD this value should be 1.0 at most, but since the
variable is used for energy minimization as well the default is 10.0.</dd>
<dt><b>niter: (20)</b></dt>
<dd>maximum number of iterations for optimizing the shell positions
and the flexible constraints.</dd>
<dt><b>fcstep: (0) [ps<sup>2</sup>]</b></dt>
<dd>the step size for optimizing the flexible constraints.
Should be chosen as mu/(d<sup>2</sup>V/d q<sup>2</sup>)
where mu is the reduced mass of two particles in a flexible constraint
and d<sup>2</sup>V/d q<sup>2</sup> is the second derivative of the potential
in the constraint direction. Hopefully this number does not differ too
much between the flexible constraints, as the number of iterations
and thus the runtime is very sensitive to <tt>fcstep</tt>.
Try several values!</dd>
</dl>

<A NAME="tpi"><br>
<hr>
<h3>Test particle insertion</h3>
<dl>
<dt><b>rtpi: (0.05) [nm]</b></dt>
<dd>the test particle insertion radius see integrators
<b><a href="#run">tpi</a></b> and <b><a href="#run">tpic</a></b></dd>
</dl>

<A NAME="out"><br>
<hr>
<h3>Output control</h3>
<dl>
<dt><b>nstxout: (100) [steps]</b></dt>
<dd>frequency to write coordinates to output 
<!--Idx-->trajectory file<!--EIdx-->, the last coordinates are always written</dd>
<dt><b>nstvout: (100) [steps]</b></dt>
<dd>frequency  to write velocities to output trajectory,
the last velocities are always written</dd>
<dt><b>nstfout: (0) [steps]</b></dt>
<dd>frequency to write forces to output trajectory.</dd>
<dt><b>nstlog: (100) [steps]</b></dt>
<dd>frequency to write energies to <!--Idx-->log file<!--EIdx-->,
the last energies are always written</dd>
<dt><b>nstcalcenergy: (-1)</b></dt>
<dd>frequency for calculating the energies, 0 is never.
This option is only relevant with dynamics.
With a twin-range cut-off setup <b>nstcalcenergy</b> should be equal to
or a multiple of <b>nstlist</b>.
This option affects the performance in parallel simulations,
because calculating energies requires global communication between all
processes which can become a bottleneck at high parallelization.
The default value of -1 sets <b>nstcalcenergy</b> equal to <b>nstlist</b>,
unless <b>nstlist</b> &le;0, then a value of 10 is used.
If <b>nstenergy</b> is smaller than the automatically generated value,
the lowest common denominator of <b>nstenergy</b> and <b>nstlist</b> is used.
</dd>
<dt><b>nstenergy: (100) [steps]</b></dt>
<dd>frequency to write energies to energy file,
the last energies are always written,
should be a multiple of <b>nstcalcenergy</b>.
Note that the exact sums and fluctuations over all MD steps
modulo <b>nstcalcenergy</b> are stored in the energy file,
so <tt>g_energy</tt> can report exact
energy averages and fluctuations also when <b>nstenergy</b><tt>&gt;1</tt></dd>
<dt><b>nstxtcout: (0) [steps]</b></dt>
<dd>frequency to write coordinates to xtc trajectory</dd>
<dt><b>xtc_precision: (1000) [real]</b></dt>
<dd>precision to write to xtc trajectory</dd>
<dt><b>xtc_grps:</b></dt>
<dd>group(s) to write to xtc trajectory, default the whole system is written
(if <b>nstxtcout</b> is larger than zero)</dd>
<dt><b>energygrps:</b></dt>
<dd>group(s) to write to energy file</dd>
</dl>

<A NAME="nl"><br>
<hr>
<h3><!--Idx-->Neighbor searching<!--EIdx--></h3>
<dl>
<dt><b>nstlist: (10) [steps]</b></dt>
<dd><dl compact>
<dt><b>&gt;0</b></dt>
<dd>Frequency to update the <!--Idx-->neighbor list<!--EIdx--> (and
the long-range forces, when using twin-range cut-off's). When this is 0,
the neighbor list is made only once.
With energy minimization the neighborlist will be updated for every
energy evaluation when <b>nstlist</b><tt>&gt;0</tt>.</dd>
<dt><b>0</b></dt>
<dd>The neighbor list is only constructed once and never updated.
This is mainly useful for vacuum simulations in which all particles
see each other.</dd>
<dt><b>-1</b></dt>
<dd>Automated update frequency.
This can only be used with switched, shifted or user potentials where
the cut-off can be smaller than <b>rlist</b>. One then has a buffer
of size <b>rlist</b> minus the longest cut-off.
The neighbor list is only updated when one or more particles have moved further
than half the buffer size from the center of geometry of their charge group
as determined at the previous neighbor search.
Coordinate scaling due to pressure coupling or the <b>deform</b> option
is taken into account.
This option guarantees that their are no cut-off artifacts.
But for larger systems this can come at a high computational cost,
since the neighbor list update frequency will be determined
by just one or two particles moving slightly beyond the half buffer length
(which not even necessarily implies that the neighbor list is invalid),
while 99.99% of the particles are fine.
</dd>
</dl></dd>

<dt><b>ns_type:</b></dt>
<dd><dl compact>
<dt><b>grid</b></dt>
<dd>Make a grid in the box and only check atoms in neighboring grid
cells when constructing a new neighbor list every <b>nstlist</b> steps.
In large systems grid search is much faster than simple search.</dd>
<dt><b>simple</b></dt>
<dd>Check every atom in the box when constructing a new neighbor list
every <b>nstlist</b> steps.</dd>
</dl></dd>

<dt><b>pbc:</b></dt>
<dd><dl compact>
<dt><b>xyz</b></dt>
<dd>Use periodic boundary conditions in all directions.</dd>
<dt><b>no</b></dt>
<dd>Use no periodic boundary conditions, ignore the box.
To simulate without cut-offs, set all cut-offs to 0 and <b>nstlist</b><tt>=0</tt>.
For best performance without cut-offs, use <b>nstlist</b><tt>=0</tt>,
<b>ns_type</b><tt>=simple</tt>
and particle decomposition instead of domain decomposition.</dd>
<dt><b>xy</b></dt>
<dd>Use periodic boundary conditions in x and y directions only.
This works only with <b>ns_type</b><tt>=grid</tt> and can be used
in combination with <b><a href="#walls">walls</a></b>.
Without walls or with only one wall the system size is infinite
in the z direction. Therefore pressure coupling or Ewald summation
methods can not be used.
These disadvantages do not apply when two walls are used.</dd>
</dl></dd>

<dt><b>periodic_molecules:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>molecules are finite, fast molecular pbc can be used</dd>
<dt><b>yes</b></dt>
<dd>for systems with molecules that couple to themselves through
the periodic boundary conditions, this requires a slower pbc algorithm
and molecules are not made whole in the output</dd>
</dl></dd>

<dt><b>rlist: (1) [nm]</b></dt>
<dd>cut-off distance for the short-range neighbor list</dd>

<dt><b>rlistlong: (-1) [nm]</b></dt>
<dd>Cut-off distance for the long-range neighbor list.
This parameter is only relevant for a twin-range cut-off setup
with switched potentials. In that case a buffer region is required to account
for the size of charge groups. In all other cases this parameter
is automatically set to the longest cut-off distance.</dd>
</dl>


<A NAME="el"><br>
<hr>
<h3><!--Idx-->Electrostatics<!--EIdx--></h3>
<dl>
<dt><b>coulombtype:</b></dt>
<dd><dl compact>

<dt><b>Cut-off</b></dt>
<dd>Twin range cut-off's with neighborlist cut-off <b>rlist</b> and 
Coulomb cut-off <b>rcoulomb</b>,
where <b>rcoulomb</b>&ge;<b>rlist</b>.

<dt><b>Ewald</b></dt>
<dd>Classical <!--Idx-->Ewald sum<!--EIdx--> electrostatics.
The real-space cut-off <b>rcoulomb</b> should be equal to <b>rlist</b>.
Use e.g. <b>rlist</b><tt>=0.9</tt>, <b>rcoulomb</b><tt>=0.9</tt>. The highest magnitude of
wave vectors used in reciprocal space is controlled by <b>fourierspacing</b>.
The relative accuracy of direct/reciprocal space
is controlled by <b>ewald_rtol</b>.
<br>
NOTE: Ewald scales as O(N<sup>3/2</sup>)
and is thus extremely slow for large systems. It is included mainly for
reference - in most cases PME will perform much better.</dd>

<dt><b><!--Idx-->PME<!--EIdx--></b></dt>
<dd>Fast Particle-Mesh Ewald electrostatics. Direct space is similar
to the Ewald sum, while the reciprocal part is performed with
FFTs. Grid dimensions are controlled with <b>fourierspacing</b> and the
interpolation order with <b>pme_order</b>. With a grid spacing of 0.1
nm and cubic interpolation the electrostatic forces have an accuracy
of 2-3*10<sup>-4</sup>. Since the error from the vdw-cutoff is larger than this you
might try 0.15 nm. When running in parallel the interpolation
parallelizes better than the FFT, so try decreasing grid dimensions
while increasing interpolation.</dd>

<dt><b><!--Idx-->PPPM<!--EIdx--></b></dt>
<dd>Particle-Particle Particle-Mesh algorithm for long range
electrostatic interactions.
Use for example <b>rlist</b><tt>=0.9</tt>, <b>rcoulomb</b><tt>=0.9</TT>.
The grid dimensions are controlled by <b>fourierspacing</b>.
Reasonable grid spacing for PPPM is 0.05-0.1 nm.
See <tt>Shift</tt> for the details of the particle-particle potential.
<br>
NOTE: PPPM is not functional in the current version, we plan to implement
PPPM through a small modification of the PME code.</dd>

<dt><b><!--Idx-->Reaction-Field<!--EIdx--></b></dt>
<dd>Reaction field with Coulomb cut-off <b>rcoulomb</b>,
where <b>rcoulomb</b> &ge <b>rlist</b>.
The dielectric constant beyond the cut-off is <b>epsilon_rf</b>.
The dielectric constant can be set to infinity by setting <b>epsilon_rf</b><tt>=0</tt>.</dd>

<dt><b>Generalized-Reaction-Field</b></dt>
<dd>Generalized reaction field with Coulomb cut-off <b>rcoulomb</b>,
where <b>rcoulomb</b> &ge <b>rlist</b>.
The dielectric constant beyond the cut-off is <b>epsilon_rf</b>.
The ionic strength is computed from the number of charged 
(i.e. with non zero charge) <!--Idx-->charge group<!--EIdx-->s.
The temperature for the GRF potential is set with 
<b><A HREF="#tc">ref_t</A></b> [K].</dd>

<dt><b>Reaction-Field-zero</b></dt>
<dd>In GROMACS normal reaction-field electrostatics leads to bad
energy conservation. <b>Reaction-Field-zero</b> solves this
by making the potential zero beyond the cut-off. It can only
be used with an infinite dielectric constant (<b>epsilon_rf=0</b>),
because only for that value the force vanishes at the cut-off.
<b>rlist</b> should be 0.1 to 0.3 nm larger than <b>rcoulomb</b>
to accommodate for the size of charge groups and diffusion
between neighbor list updates. This, and the fact that table lookups
are used instead of analytical functions make <b>Reaction-Field-zero</b>
computationally more expensive than normal reaction-field.</dd>

<dt><b>Reaction-Field-nec</b></dt>
<dd>The same as <b>Reaction-Field</b>, but implemented as in
GROMACS versions before 3.3. No reaction-field correction is applied
to excluded atom pairs and self pairs.
The 1-4 interactions are calculated using a reaction-field.
The missing correction due to the excluded pairs that do not have a 1-4
interaction is up to a few percent of the total electrostatic
energy and causes a minor difference in the forces and the pressure.</dd>

<dt><b>Shift</b></dt>
<dd>Analogous to <b>Shift</b> for <b>vdwtype</b>.
You might want to use <b>Reaction-Field-zero</b> instead,
which has a similar potential shape, but has a physical interpretation
and has better energies due to the exclusion correction terms.
</dd>

<dt><b>Encad-Shift</b></dt>
<dd>The Coulomb
potential is decreased over the whole range, using the definition
from the Encad simulation package.</dd>

<dt><b>Switch</b></dt>
<dd>Analogous to <b>Switch</b> for <b>vdwtype</b>.
Switching the Coulomb potential can lead to serious artifacts,
advice: use <b>Reaction-Field-zero</b> instead.</dd>

<dt><b>User</b></dt> 
<dd><a name="usertab"></a><tt>mdrun</tt> will now expect to find a file
<tt>table.xvg</tt> with user-defined potential functions for
repulsion, dispersion and Coulomb. When pair interactions are present,
<tt>mdrun</tt> also expects to find a file <tt>tablep.xvg</tt> for
the pair interactions. When the same interactions should be used
for non-bonded and pair interactions the user can specify the same
file name for both table files.
These files should contain 7
columns: the <tt>x</tt> value,
<tt>f(x)</tt>, <tt>-f'(x)</tt>,
<tt>g(x)</tt>, <tt>-g'(x)</tt>,
<tt>h(x)</tt>, <tt>-h'(x)</tt>,
where f(x) is the Coulomb function, g(x) the dispersion function
and h(x) the repulsion function.
When <b>vdwtype</b> is not set to <b>User</b> the values
for g, -g', h and -h' are ignored.
For the non-bonded interactions <tt>x</tt> values should run
from 0 to the largest cut-off distance + <b>table-extension</b>
and should be uniformly spaced. For the pair interactions the table
length in the file will be used.
The optimal spacing, which is used for non-user tables,
is <tt>0.002</tt> [nm] when you run in single precision
or <tt>0.0005</tt> [nm] when you run in double precision.
The function value at <tt>x=0</tt> is not important. More information is
in the printed manual.</dd>

<dt><b>PME-Switch</b></dt>
<dd>A combination of PME and a switch function for the direct-space part
(see above). <b>rcoulomb</b> is allowed to be smaller than <b>rlist</b>.
This is mainly useful constant energy simulations. For constant temperature
simulations the advantage of improved energy conservation
is usually outweighed by the small loss in accuracy of the electrostatics.
</dd>

<dt><b>PME-User</b></dt>
<dd>A combination of PME and user tables (see above).
<b>rcoulomb</b> is allowed to be smaller than <b>rlist</b>.
The PME mesh contribution is subtracted from the user table by <tt>mdrun</tt>.
Because of this subtraction the user tables should contain
about 10 decimal places.</dd>

<dt><b>PME-User-Switch</b></dt>
<dd>A combination of PME-User and a switching function (see above).
The switching function is applied to final particle-particle interaction,
i.e. both to the user supplied function and the PME Mesh correction part.</dd>

</dl></dd>

<A NAME="el2">
<dt><b>rcoulomb_switch: (0) [nm]</b></dt>
<dd>where to start switching the Coulomb potential</dd>

<dt><b>rcoulomb: (1) [nm]</b></dt>
<dd>distance for the Coulomb <!--Idx-->cut-off<!--EIdx--></dd>

<dt><b>epsilon_r: (1)</b></dt>
<dd>The relative <!--Idx-->dielectric constant<!--EIdx-->.
A value of 0 means infinity.</dd>

<dt><b>epsilon_rf: (1)</b></dt>
<dd>The relative dielectric constant of the reaction field.
This is only used with reaction-field electrostatics.
A value of 0 means infinity.</dd>
</dl>

<A NAME="vdw">
<hr>
<h3>VdW</h3>
<dl>
<dt><b>vdwtype:</b></dt>
<dd><dl compact>
<dt><b>Cut-off</b></dt>
<dd>Twin range cut-off's with neighbor list cut-off <b>rlist</b> and 
VdW cut-off <b>rvdw</b>,
where <b>rvdw</b> <tt>&ge</tt> <b>rlist</b>.</dd>
<dt><b>Shift</b></dt>
<dd>The LJ (not Buckingham) potential is decreased over the whole
range and the forces decay smoothly to zero between <b>rvdw_switch</b>
and <b>rvdw</b>.  The neighbor search cut-off <b>rlist</b> should be
0.1 to 0.3 nm larger than <b>rvdw</b> to accommodate for the size of
charge groups and diffusion between neighbor list
updates.</dd>

<dt><b>Switch</b></dt>
<dd>The LJ (not Buckingham)
potential is normal out to <b>rvdw_switch</b>, after which it is switched
off to reach zero at <b>rvdw</b>. Both the potential and force functions
are continuously smooth, but be aware that all switch functions will give rise
to a bulge (increase) in the force (since we are switching the potential).
The neighbor search cut-off <b>rlist</b> should be 0.1 to 0.3 nm larger than
<b>rvdw</b> to accommodate for the size of charge groups and diffusion
between neighbor list updates.</dd>

<dt><b>Encad-Shift</b></dt>
<dd>The LJ (not Buckingham)
potential is decreased over the whole range, using the definition
from the Encad simulation package.</dd>

<dt><b>User</b></dt>
<dd>See <b><a href="#usertab">user</a></b> for <b>coulombtype</b>.
The function value at <tt>x=0</tt> is not important. When you want to
use LJ correction, make sure that <b>rvdw</b> corresponds to the
cut-off in the user-defined function.
When <b>coulombtype</b> is not set to <b>User</b> the values
for f and -f' are ignored.</dd>
</dl></dd>

<dt><b>rvdw_switch: (0) [nm]</b></dt>
<dd>where to start switching the LJ potential</dd>

<dt><b>rvdw: (1) [nm]</b></dt>
<dd>distance for the LJ or Buckingham <!--Idx-->cut-off<!--EIdx--></dd>

<dt><b>DispCorr:</b></dt>
<dd><dl compact></dd>
<dt><b>no</b></dt>
<dd>don't apply any correction</dd>
<dt><b>EnerPres</b></dt>
<dd>apply long range <!--Idx-->dispersion correction<!--EIdx-->s for Energy
and Pressure</dd>
<dt><b>Ener</b></dt>
<dd>apply long range dispersion corrections for Energy
only</dd>
</dl>
</dl>

<A NAME="table">
<hr>
<h3>Tables</h3>
<dl>
<dt><b>table-extension: (1) [nm]</b></dt>
<dd>Extension of the non-bonded potential lookup tables beyond the largest cut-off distance.
The value should be large enough to account for charge group sizes
and the diffusion between neighbor-list updates.
Without user defined potential the same table length is used
for the lookup tables for the 1-4 interactions,
which are always tabulated irrespective of the use of
tables for the non-bonded interactions. </dd>

<dt><b>energygrp_table:</b></dt>
<dd>When user tables are used for electrostatics and/or VdW,
here one can give pairs of energy groups for which seperate
user tables should be used.
The two energy groups will be appended to the table file name,
in order of their definition in <b>energygrps</b>, seperated by underscores.
For example, if <tt>energygrps = Na Cl Sol</tt>
and <tt>energygrp_table = Na Na Na Cl</tt>, <tt>mdrun</tt> will read
<tt>table_Na_Na.xvg</tt> and <tt>table_Na_Cl.xvg</tt> in addition
to the normal <tt>table.xvg</tt> which will be used for all other
energy group pairs.
</dd>
</dl>

<A NAME="ewald">
<hr>
<h3>Ewald</h3>
<dl>
<dt><b>fourierspacing: (0.12) [nm]</b></dt>
<dd>The maximum grid spacing for the FFT grid when using PPPM or PME.
For ordinary Ewald the spacing times the box dimensions determines the
highest magnitude to use in each direction. In all cases
each direction can be overridden by entering a non-zero value for
<b>fourier_n*</b>.
For optimizing the relative load of the particle-particle interactions
and the mesh part of PME it is useful to know that
the accuracy of the electrostatics remains nearly constant
when the Coulomb cut-off and the PME grid spacing are scaled
by the same factor.</dd>

<dt><b>fourier_nx (0) ; fourier_ny (0) ; fourier_nz: (0)</b></dt>
<dd>Highest magnitude of wave vectors in reciprocal space when using Ewald.</dd>
<dd>Grid size when using PPPM or PME. These values override
<b>fourierspacing</b> per direction. The best choice is powers of
2, 3, 5 and 7. Avoid large primes.</dd>

<dt><b>pme_order (4)</b></dt>
<dd>Interpolation order for PME. 4 equals cubic interpolation. You might try
6/8/10 when running in parallel and simultaneously decrease grid dimension.</dd>

<dt><b>ewald_rtol (1e-5)</b></dt>
<dd>The relative strength of the Ewald-shifted direct potential at
<b>rcoulomb</b> is given by <b>ewald_rtol</b>.
Decreasing this will give a more accurate direct sum,
but then you need more wave vectors for the reciprocal sum.</dd>

<dt><b>ewald_geometry: (3d)</b></dt>
<dd><dl compact>
<dt><b>3d</b></dt>
<dd>The Ewald sum is performed in all three dimensions.</dd>
<dt><b>3dc</b></dt>
<dd>The reciprocal sum is still performed in 3d,
but a force and potential correction applied in the z 
dimension to produce a pseudo-2d summation.
If your system has a slab geometry in the x-y plane you can 
try to increase the z-dimension of the box (a box height of 3 times
the slab height is usually ok)
and use this option.</dd>
</dl></dd>

<dt><b>epsilon_surface: (0)</b></dt>
<dd>This controls the dipole correction to the Ewald summation in 3d. The
default value of zero means it is turned off. Turn it on by setting it to the value 
of the relative permittivity of the imaginary surface around your infinite system. Be
careful - you shouldn't use this if you have free mobile charges in your system. 
This value does not affect the slab 3DC variant of the long range corrections.</dd>


<dt><b>optimize_fft:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>Don't calculate the optimal FFT plan for the grid at startup.</dd>
<dt><b>yes</b></dt>
<dd>Calculate the optimal FFT plan for the grid at startup. This saves a
few percent for long simulations, but takes a couple of minutes
at start.</dd>
</dl></dd>

</dl>

<A NAME="tc"><br>
<hr>
<h3><!--Idx-->Temperature coupling<!--EIdx--></h3>

<dl>
<dt><b>tcoupl:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>No temperature coupling.</dd>
<dt><b>berendsen</b></dt>
<dd>Temperature coupling with a Berendsen-thermostat to a bath with
temperature <b>ref_t</b> [K], with time constant <b>tau_t</b> [ps].
Several groups can be coupled separately, these are specified in the
<b>tc_grps</b> field separated by spaces.</dd>
<dt><b>nose-hoover</b></dt>
<dd>Temperature coupling using a Nose-Hoover extended
ensemble. The reference temperature and coupling groups are selected
as above, but in this case <b>tau_t</b> [ps] controls the period
of the temperature fluctuations at equilibrium, which is slightly
different from a relaxation time.
For NVT simulations the conserved energy quantity is written
to energy and log file.</dd>
<dt><b>v-rescale</b></dt>
<dd>Temperature coupling using velocity rescaling with a stochastic term
(JCP 126, 014101).
This thermostat is similar to Berendsen coupling, with the same scaling
using <b>tau_t</b>, but the stochastic term ensures that a proper
canonical ensemble is generated. The random seed is set with
<b><A HREF="#ld">ld_seed</A></b>.
This thermostat works correctly even for <b>tau_t</b><tt>=0</tt>.
For NVT simulations the conserved energy quantity is written
to the energy and log file.</dd>
</dl>
<dt><b>nsttcouple: (-1)</b></dt>
<dd>The frequency for coupling the temperature.
The default value of -1 sets <b>nsttcouple</b> equal to <b>nstlist</b>,
unless <b>nstlist</b>&le;0, then a value of 10 is used.
For velocity Verlet integrators <b>nsttcouple</b> is set to 1.</dd>
</dd>
<dt><b>nh-chain-length (10)</b></dt>
<dd>the number of chained Nose-Hoover thermostats for velocity Verlet integrators, the leap-frog <b>md</b> integrator only supports 1.  Data for the NH chain variables is not printed to the .edr, but can be using the <tt>GMX_NOSEHOOVER_CHAINS</tt> environment variable</dd>
<dt><b>tc_grps:</b></dt>
<dd>groups to couple separately to temperature bath</dd>
<dt><b>tau_t: [ps]</b></dt>
<dd>time constant for coupling (one for each group in <b>tc_grps</b>),
-1 means no temperature coupling</dd>
<dt><b>ref_t: [K]</b></dt>
<dd>reference temperature for coupling (one for each group in <b>tc_grps</b>)</dd>
</dl>

<A NAME="pc"><br>
<hr>
<h3><!--Idx-->Pressure coupling<!--EIdx--></h3>

<dl>
<dt><b>pcoupl:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>No pressure coupling. This means a fixed box size.</dd>
<dt><b>berendsen</b></dt>
<dd>Exponential relaxation pressure coupling with time constant
<b>tau_p</b> [ps]. The box is scaled every timestep. It has been
argued that this does not yield a correct thermodynamic ensemble,
but it is the most efficient way to scale a box at the beginning
of a run.</dd>
<dt><b>Parrinello-Rahman</b></dt>
<dd>Extended-ensemble pressure coupling where the box vectors are
subject to an equation of motion. The equation of motion for the atoms
is coupled to this. No instantaneous scaling takes place.  As for
Nose-Hoover temperature coupling the time constant <b>tau_p</b> [ps]
is the period of pressure fluctuations at equilibrium. This is
probably a better method when you want to apply pressure scaling
during data collection, but beware that you can get very large
oscillations if you are starting from a different pressure. For
simulations where the exact fluctation of the NPT ensemble are
important, or if the pressure coupling time is very short it may not
be appropriate, as the previous time step pressure is used in some
steps of the GROMACS implementation for the current time step pressure.</dd>
</dl></dd>
<dt><b>MTTK</b></dt>
<dd>Martyna-Tuckerman-Tobias-Klein implementation, only useable with <b>md-vv</b>
or <b>md-vv-avek</b>, very similar to Parrinello-Rahman.  
As for Nose-Hoover temperature coupling the time constant <b>tau_p</b>
[ps] is the period of pressure fluctuations at equilibrium. This is
probably a better method when you want to apply pressure scaling
during data collection, but beware that you can get very large
oscillations if you are starting from a different pressure. Currently only supports isotropic scaling.</dd>
</dl></dd>

<dl>
<dt><b>pcoupltype:</b></dt>
<dd><dl compact>
<dt><b>isotropic</b></dt>
<dd>Isotropic pressure coupling with time constant <b>tau_p</b> [ps].
The compressibility and reference pressure are set with
<b>compressibility</b> [bar<sup>-1</sup>] and <b>ref_p</b> [bar], one
value is needed.</dd>
<dt><b>semiisotropic</b></dt>
<dd>Pressure coupling which is isotropic in the x and y direction,
but different in the z direction.
This can be useful for membrane simulations.
2 values are needed for x/y and z directions respectively.</dd>
<dt><b>anisotropic</b></dt>
<dd>Idem, but 6 values are needed for xx, yy, zz, xy/yx, xz/zx and yz/zy
components, respectively.
When the off-diagonal compressibilities are set to zero,
a rectangular box will stay rectangular.
Beware that anisotropic scaling can lead to extreme deformation
of the simulation box.</dd>
<dt><b>surface-tension</b></dt>
<dd>Surface tension coupling for surfaces parallel to the xy-plane.
Uses normal pressure coupling for the z-direction, while the surface tension
is coupled to the x/y dimensions of the box.
The first <b>ref_p</b> value is the reference surface tension times
the number of surfaces [bar nm], 
the second value is the reference z-pressure [bar].
The two <b>compressibility</b> [bar<sup>-1</sup>] values are the compressibility
in the x/y and z direction respectively.
The value for the z-compressibility should be reasonably accurate since it
influences the convergence of the surface-tension, it can also be set to zero
to have a box with constant height.</dd>
</dl></dd>

<dt><b>nstpcouple: (-1)</b></dt>
<dd>The frequency for coupling the pressure.
The default value of -1 sets <b>nstpcouple</b> equal to <b>nstlist</b>,
unless <b>nstlist</b> &le;0, then a value of 10 is used.
For velocity Verlet integrators <b>nstpcouple</b> is set to 1.</dd>
</dd>

<dt><b>tau_p: (1) [ps]</b></dt>
<dd>time constant for coupling</dd>
<dt><b>compressibility: [bar<sup>-1</sup>]</b></dt>
<dd>compressibility (NOTE: this is now really in bar<sup>-1</sup>)
For water at 1 atm and 300 K the compressibility is 4.5e-5 [bar<sup>-1</sup>].</dd>
<dt><b>ref_p: [bar]</b></dt>
<dd>reference pressure for coupling</dd>
<dt><b>refcoord_scaling:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>The reference coordinates for position restraints are not modified.
Note that with this option the virial and pressure will depend on the absolute
positions of the reference coordinates.</dd>
<dt><b>all</b></dt>
<dd>The reference coordinates are scaled with the scaling matrix of the pressure coupling.</dd>
<dt><b>com</b></dt>
<dd>Scale the center of mass of the reference coordinates with the scaling matrix of the pressure coupling. The vectors of each reference coordinate to the center of mass are not scaled. Only one COM is used, even when there are multiple molecules with position restraints. For calculating the COM of the reference coordinates in the starting configuration, periodic boundary conditions are not taken into account.
</dl></dd>
</dd>
</dl>

<A NAME="sa"><br>
<hr>
<h3><!--Idx-->Simulated annealing<!--EIdx--></h3>

Simulated annealing is controlled separately for each temperature group in GROMACS. The reference temperature is a piecewise linear function, but you can use an arbitrary number of points for each group, and choose either a single sequence or a periodic behaviour for each group. The actual annealing is performed by dynamically changing the reference temperature used in the thermostat algorithm selected, so remember that the system will usually not instantaneously reach the reference temperature!
<dl>
<dt><b>annealing:</b></dt>
<dd>Type of annealing for each temperature group</dd>
<dd><dl compact></dd>
<dt><b>no</b></dt>
<dd>No simulated annealing - just couple to reference temperature value.</dd>
<dt><b>single</b></dt>
<dd>A single sequence of annealing points. If your simulation is longer than the time of the last point, the temperature will be coupled to this constant value after the annealing sequence has reached the last time point.</dd>
<dt><b>periodic</b></dt>
<dd>The annealing will start over at the first reference point once the last reference time is reached. This is repeated until the simulation ends. 
</dd>
</dl>

<dt><b>annealing_npoints:</b></dt>
<dd>A list with the number of annealing reference/control points used for 
each temperature group. Use 0 for groups that are not annealed. The number of entries should equal the number of temperature groups.</dd>

<dt><b>annealing_time:</b></dt>
<dd>List of times at the annealing reference/control points for each group. If you are using periodic annealing, the times will be used modulo the last value, i.e. if the values are 0, 5, 10, and 15, the coupling will restart at the 0ps value after 15ps, 30ps, 45ps, etc. The number of entries should equal the sum of the numbers given in <tt>annealing_npoints</tt>.</dd>

<dt><b>annealing_temp:</b></dt>
<dd>List of temperatures at the annealing reference/control points for each group. The number of entries should equal the sum of the numbers given in <tt>annealing_npoints</tt>.</dd>
<br>
Confused? OK, let's use an example. Assume you have two temperature groups, set the group selections to <tt>annealing = single periodic</tt>, the number of points of each group to <tt>annealing_npoints = 3 4</tt>, the times to <tt>annealing_time = 0 3 6 0 2 4 6</tt> and finally temperatures to <tt>annealing_temp = 298 280 270 298 320 320 298</tt>.
The first group will be coupled to 298K at 0ps, but the reference temperature will drop linearly to reach 280K at 3ps, and then linearly between 280K and 270K from 3ps to 6ps. After this is stays constant, at 270K. The second group is coupled to 298K at 0ps, it increases linearly to 320K at 2ps, where it stays constant until 4ps. Between 4ps and 6ps it decreases to 298K, and then it starts over with the same pattern again, i.e. rising linearly from 298K to 320K between 6ps and 8ps. Check the summary printed by <tt>grompp</tt> if you are unsure!
</dl>

<A NAME="vel"><br>
<hr>
<h3>Velocity generation</h3>

<dl>
<dt><b>gen_vel:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd> Do not generate velocities. The velocities are set to zero
when there are no velocities in the input structure file.</dd>
<dt><b>yes</b></dt>
<dd>Generate velocities in <tt>grompp</tt> according to a Maxwell distribution at
temperature <b>gen_temp</b> [K], with random seed <b>gen_seed</b>. 
This is only meaningful with integrator <b><A HREF="#run">md</A></b>.</dd>
</dl></dd>
<dt><b>gen_temp: (300) [K]</b></dt>
<dd>temperature for Maxwell distribution</dd>
<dt><b>gen_seed: (173529) [integer]</b></dt>
<dd>used to initialize random generator for random velocities,
when <b>gen_seed</b> is set to -1, the seed is calculated from
the process ID number.
</dl>

<A NAME="bond"><br>
<hr>
<h3>Bonds</h3>

<dl>
<dt><b><!--Idx-->constraints<!--EIdx-->:</b></dt>
<dd><dl compact>
<dt><b>none</b></dt>
<dd>No constraints except for those defined explicitly in the topology,
i.e. bonds are represented by a harmonic (or other) potential
or a Morse potential (depending on the setting of <b>morse</b>)
and angles by a harmonic (or other) potential.
<dt><b>hbonds</b></dt>
<dd>Convert the bonds with H-atoms to constraints.</dd>
<dt><b>all-bonds</b></dt>
<dd>Convert all bonds to constraints.</dd>
<dt><b>h-angles</b></dt>
<dd>Convert all bonds and additionally the angles that involve H-atoms
to bond-constraints.</dd>
<dt><b>all-angles</b></dt>
<dd>Convert all bonds and angles to bond-constraints.</dd>
</dl>

<dt><b>constraint_algorithm:</b></dt>
<dd><dl compact>
<dt><b><!--Idx-->LINCS<!--EIdx--></b></dt>
<dd>LINear Constraint Solver.
With domain decomposition the parallel version P-LINCS is used.
The accuracy in set with
<b>lincs_order</b>, which sets the number of matrices in the expansion
for the matrix inversion.
After the matrix inversion correction the algorithm does
an iterative correction to compensate for lengthening due to rotation.
The number of such iterations can be controlled with
<b>lincs_iter</b>. The root mean square relative constraint deviation
is printed to the log file every <b>nstlog</b> steps.
If a bond rotates more than <b>lincs_warnangle</b> [degrees] in one step, 
a warning will be printed both to the log file and to <TT>stderr</TT>. 
LINCS should not be used with coupled angle constraints.
</dd>
<dt><b><!--Idx-->SHAKE<!--EIdx--></b></dt>
<dd>SHAKE is slightly slower and less stable than LINCS, but does work with 
angle constraints.
The relative tolerance is set with <b>shake_tol</b>, 0.0001 is a good value
for ``normal'' MD. SHAKE does not support constraints between atoms
on different nodes, thus it can not be used with domain decompositon
when inter charge-group constraints are present.
SHAKE can not be used with energy minimization.
</dd>
</dl></dd>
<dt><b>continuation:</b></dt>
<dd>This option was formerly known as <tt>unconstrained_start</tt>.</dd>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>apply constraints to the start configuration and reset shells</dd>
<dt><b>yes</b></dt>
<dd>do not apply constraints to the start configuration
and do not reset shells, useful for exact coninuation and reruns</dd>
</dl></dd>

<A NAME="bond2">
<dt><b>shake_tol: (0.0001)</b></dt>
<dd>relative tolerance for SHAKE</dd>
<dt><b>lincs_order: (4)</b></dt>
<dd>Highest order in the expansion of the constraint coupling matrix.
When constraints form triangles, an additional expansion of the same
order is applied on top of the normal expansion only for the couplings
within such triangles.
For ``normal'' MD simulations an order of 4 usually suffices, 6 is
needed for large time-steps with virtual sites or BD.
For accurate energy minimization an order of 8 or more might be required.
With domain decomposition, the cell size is limited by the distance
spanned by <b>lincs_order</b>+1 constraints. When one wants to scale
further than this limit, one can decrease <b>lincs_order</b> and increase
<b>lincs_iter</b>, since the accuracy does not deteriorate
when (1+<b>lincs_iter</b>)*<b>lincs_order</b> remains constant.</dd>
<dt><b>lincs_iter: (1)</b></dt>
<dd>Number of iterations to correct for rotational lengthening in LINCS.
For normal runs a single step is sufficient, but for NVE
runs where you want to conserve energy accurately or for accurate
energy minimization you might want to increase it to 2.
<dt><b>lincs_warnangle: </b>(30) [degrees]</dt>
<dd>maximum angle that a bond can rotate before LINCS will complain</dd>

<dt><b>morse:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>bonds are represented by a harmonic potential</dd>
<dt><b>yes</b></dt>
<dd>bonds are represented by a Morse potential</dd>
</dl></dd>
</dl>

<A NAME="egexcl"><br>
<hr>
<h3>Energy group <!--Idx-->exclusions<!--EIdx--></h3>
<dl>
<dt><b>energygrp_excl: </b></dt>
<dd>Pairs of energy groups for which all non-bonded interactions are
excluded. An example: if you have two energy groups <tt>Protein</tt>
and <tt>SOL</tt>, specifying
<br>
<tt>energygrp_excl&nbsp;=&nbsp;Protein&nbsp;Protein&nbsp;&nbsp;SOL&nbsp;SOL</tt>
<br>
would give only the non-bonded interactions between the protein and the
solvent. This is especially useful for speeding up energy calculations with
<tt>mdrun -rerun</tt> and for excluding interactions within frozen groups.</dd>
</dl>

<A NAME="walls"><br>
<hr>
<h3><!--Idx-->Walls<!--EIdx--></h3>
<dl>
<dt><b>nwall: 0</b></dt>
<dd>When set to <b>1</b> there is a wall at z=0, when set to <b>2</b>
there is also a wall at z=z_box. Walls can only be used with <b>pbc=xy</b>.
When set to <b>2</b> pressure coupling and Ewald summation can be used
(it is usually best to use semiisotropic pressure coupling with
the x/y compressibility set to 0, as otherwise the surface area will change).
Walls interact wit the rest of the system through an optional <tt>wall_atomtype</tt>.
Energy groups <tt>wall0</tt> and <tt>wall1</tt> (for <b>nwall=2</b>) are
added automatically to monitor the interaction of energy groups
with each wall.
The <A HREF="#run">center of mass motion removal</A> will be turned
off in the z-direction.</dd>
<dt><b>wall_atomtype:</b></dt>
<dd>the atom type name in the force field for each wall. 
By (for example) defining a special wall atom type in the topology with its 
own combination rules, this allows for independent tuning of the interaction 
of each atomtype with the walls.</dd>
<dt><b>wall_type:</b></dt>
<dd><dl compact>
<dt><b>9-3</b></dt>
<dd>LJ integrated over the volume behind the wall: 9-3 potential</dd>
<dt><b>10-4</b></dt>
<dd>LJ integrated over the wall surface: 10-4 potential</dd>
<dt><b>12-6</b></dt>
<dd>direct LJ potential with the z distance from the wall</dd>
<dt><b>table</b></dt><dd>user defined potentials indexed with the z distance from the wall, the tables are read analogously to
the <b><A HREF="#table">energygrp_table</A></b> option,
where the first name is for a ``normal'' energy group and the second name
is <tt>wall0</tt> or <tt>wall1</tt>,
only the dispersion and repulsion columns are used</dd>
</dl></dd>
<dt><b>wall_r_linpot: -1 (nm)</b></dt>
<dd>Below this distance from the wall the potential is continued
linearly and thus the force is constant. Setting this option to
a postive value is especially useful for equilibration when some atoms
are beyond a wall.
When the value is &le;0 (&lt;0 for <b>wall_type=table</b>),
a fatal error is generated when atoms are beyond a wall.
</dd>
<dt><b>wall_density: [nm<sup>-3</sup>/nm<sup>-2</sup>]</b></dt>
<dd>the number density of the atoms for each wall for wall types
<b>9-3</b> and <b>10-4</b>
<dt><b>wall_ewald_zfac: 3</b></dt>
<dd>The scaling factor for the third box vector for Ewald summation only,
the minimum is 2.
Ewald summation can only be used with <b>nwall=2</b>, where one
should use <b><A HREF="#ewald">ewald_geometry</A><tt>=3dc</tt></b>.
The empty layer in the box serves to decrease the unphysical Coulomb
interaction between periodic images.
</dl>

<A NAME="pull"><br>
<hr>
<h3>COM <!--Idx-->pulling<!--EIdx--></h3>
<dl>
<dt><b>pull:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>No center of mass pulling.
All the following pull options will be ignored
(and if present in the <tt>.mdp</tt> file, they unfortunately generate warnings)</dd>
<dt><b>umbrella</b></dt>
<dd>Center of mass pulling using an umbrella potential
between the reference group and one or more groups.</dd>
<dt><b>constraint</b></dt>
<dd>Center of mass pulling using a constraint
between the reference group and one or more groups.
The setup is identical to the option <b>umbrella</b>, except for the fact
that a rigid constraint is applied instead of a harmonic potential.</dd>
<dt><b>constant_force</b></dt>
<dd>Center of mass pulling using a linear potential and therefore
a constant force. For this option there is no reference position
and therefore the parameters <b>pull_init</b> and <b>pull_rate</b>
are not used.</dd>
</dl></dd>
<dt><b>pull_geometry:</b></dt>
<dd><dl compact>
<dt><b>distance</b></dt>
<dd>Pull along the vector connecting the two groups.
Components can be selected with <b>pull_dim</b>.</dd>
<dt><b>direction</b></dt>
<dd>Pull in the direction of <b>pull_vec</b>.</dd>
<dt><b>direction_periodic</b></dt>
<dd>As <b>direction</b>, but allows the distance to be larger than
half the box size. With this geometry the box should not be dynamic
(e.g. no pressure scaling) in the pull dimensions and the pull force
is not added to virial.</dd>
<dt><b>cylinder</b></dt>
<dd>Designed for pulling with respect to a layer where the reference COM
is given by a local cylindrical part of the reference group.
The pulling is in the direction of <b>pull_vec</b>.
From the reference group a cylinder is selected around the axis going
through the pull group with direction <b>pull_vec</b> using two radii.
The radius <b>pull_r1</b> gives the radius within which all
the relative weights are one, between <b>pull_r1</b> and
<b>pull_r0</b> the weights are switched to zero. Mass weighting is also used.
Note that the radii should be smaller than half the box size.
For tilted cylinders they should be even smaller than half the box size
since the distance of an atom in the reference group
from the COM of the pull group has both a radial and an axial component.
<dt><b>position</b></dt>
<dd>Pull to the position of the reference group plus
<b>pull_init</b> + time*<b>pull_rate</b>*<b>pull_vec</b>.</dd>
</dl></dd>
<dt><b>pull_dim: (Y Y Y)</b></dt>
<dd>the distance components to be used with geometry <b>distance</b>
and <b>position</b>, and also sets which components are printed
to the output files</dd>
<dt><b>pull_r1: (1) [nm]</b></dt>
<dd>the inner radius of the cylinder for geometry <b>cylinder</b></dd>
<dt><b>pull_r0: (1) [nm]</b></dt>
<dd>the outer radius of the cylinder for geometry <b>cylinder</b></dd>
<dt><b>pull_constr_tol: (1e-6)</b></dt>
<dd>the relative constraint tolerance for constraint pulling</dd>
<dt><b>pull_start:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>do not modify <b>pull_init</b>
<dt><b>yes</b></dt>
<dd>add the COM distance of the starting conformation to <b>pull_init</b></dd>
</dl>
<dt><b>pull_nstxout: (10)</b></dt>
<dd>frequency for writing out the COMs of all the pull group</dd>
<dt><b>pull_nstfout: (1)</b></dt>
<dd>frequency for writing out the force of all the pulled group</dd>
<dt><b>pull_ngroups: (1)</b></dt>
<dd>The number of pull groups, not including the reference group.
If there is only one group, there is no difference in treatment
of the reference and pulled group (except with the cylinder geometry).
Below only the pull options for the reference group (ending on 0)
and the first group (ending on 1) are given,
further groups work analogously, but with the number 1 replaced
by the group number.</dd>
<dt><b>pull_group0: </b></dt>
<dd>The name of the reference group. When this is empty an absolute reference
of (0,0,0) is used. With an absolute reference the system is no longer
translation invariant and one should think about what to do with
the <A HREF="#run">center of mass motion</A>.</dd>
<dt><b>pull_weights0: </b></dt>
<dd>see <b>pull_weights1</b></dd>
<dt><b>pull_pbcatom0: (0)</b></dt>
<dd>see <b>pull_pbcatom1</b></dd>
<dt><b>pull_group1: </b></dt>
<dd>The name of the pull group.</dd>
<dt><b>pull_weights1: </b></dt>
<dd>Optional relative weights which are multiplied with the masses of the atoms
to give the total weight for the COM. The number should be 0, meaning all 1,
or the number of atoms in the pull group.</dd>
<dt><b>pull_pbcatom1: (0)</b></dt>
<dd>The reference atom for the treatment of periodic boundary conditions
inside the group
(this has no effect on the treatment of the pbc between groups).
This option is only important when the diameter of the pull group
is larger than half the shortest box vector.
For determining the COM, all atoms in the group are put at their periodic image
which is closest to <b>pull_pbcatom1</b>.
A value of 0 means that the middle atom (number wise) is used.
This parameter is not used with geometry <b>cylinder</b>.
A value of -1 turns on cosine weighting, which is useful for a group
of molecules in a periodic system, e.g. a water slab (see Engin et al.
J. Chem. Phys. B 2010).</dd>
<dt><b>pull_vec1: (0.0 0.0 0.0)</b></dt>
<dd>The pull direction. <tt>grompp</tt> normalizes the vector.</dd>
<dt><b>pull_init1: (0.0) / (0.0 0.0 0.0) [nm]</b></dt>
<dd>The reference distance at t=0. This is a single value,
except for geometry <b>position</b> which uses a vector.</dd>
<dt><b>pull_rate1: (0) [nm/ps]</b></dt>
<dd>The rate of change of the reference position.</dd>
<dt><b>pull_k1: (0) [kJ mol<sup>-1</sup> nm<sup>-2</sup>] / [kJ mol<sup>-1</sup> nm<sup>-1</sup>]</b></dt>
<dd>The force constant. For umbrella pulling this is the harmonic force
constant in [kJ mol<sup>-1</sup> nm<sup>-2</sup>]. For constant force pulling
this is the force constant of the linear potential, and thus minus (!)
the constant force in [kJ mol<sup>-1</sup> nm<sup>-1</sup>].</dd>
<dt><b>pull_kB1: (pull_k1) [kJ mol<sup>-1</sup> nm<sup>-2</sup>] / [kJ mol<sup>-1</sup> nm<sup>-1</sup>]</b></dt>
<dd>As <b>pull_k1</b>, but for state B. This is only used when
<A HREF="#free"><b>free_energy</b></A> is turned on.
The force constant is then (1 - lambda)*<b>pull_k1</b> + lambda*<b>pull_kB1</b>.
</dl>

<A NAME="nmr"><br>
<hr>
<h3><!--Idx-->NMR refinement<!--EIdx--></h3>
<dl>
<dt><b>disre:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>no <!--Idx-->distance restraints<!--EIdx--> (ignore distance
restraint information in topology file)</dd>
<dt><b>simple</b></dt>
<dd>simple (per-molecule) distance restraints,
ensemble averaging can be performed with <tt>mdrun -multi</tt>
where the environment variable <tt>GMX_DISRE_ENSEMBLE_SIZE</tt> sets the number
of systems within each ensemble (usually equal to the <tt>mdrun -multi</tt> value)</dd>
<dt><b>ensemble</b></dt>
<dd>distance restraints over an ensemble of molecules in one simulation box,
should only be used for special cases, such as dimers
(this option is not fuctional in the current version of GROMACS)</dd>
</dl></dd>
<dt><b>disre_weighting:</b></dt>
<dd><dl compact>
<dt><b>conservative</b></dt>
<dd>the forces are the derivative of the restraint potential,
this results in an r<sup>-7</sup> weighting of the atom pairs</dd>
<dt><b>equal</b></dt>
<dd>divide the restraint force equally over all atom pairs in the restraint</dd>
</dl></dd>
<dt><b>disre_mixed:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>the violation used in the calculation of the restraint force is the
time averaged violation </dd>
<dt><b>yes</b></dt>
<dd>the violation used in the calculation of the restraint force is the
square root of the time averaged violation times the instantaneous violation </dd>
</dl></dd>

<dt><b>disre_fc: (1000) [kJ mol<sup>-1</sup> nm<sup>-2</sup>]</b></dt>
<dd>force constant for distance restraints, which is multiplied by a
(possibly) different factor for each restraint</dd>

<dt><b>disre_tau: (0) [ps]</b></dt>
<dd>time constant for distance restraints running average</dd>

<dt><b>nstdisreout: (100) [steps]</b></dt>
<dd>frequency to write the running time averaged and instantaneous distances
of all atom pairs involved in restraints to the energy file
(can make the energy file very large)</dd>

<A NAME="nmr2">
<dt><b>orire:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>no <!--Idx-->orientation restraints<!--EIdx--> (ignore orientation
restraint information in topology file)</dd>
<dt><b>yes</b></dt>
<dd>use orientation restraints, ensemble averaging can be performed
with <tt>mdrun -multi</tt></dd>
</dl>
<dt><b>orire_fc: (0) [kJ mol]</b></dt>
<dd>force constant for orientation restraints, which is multiplied by a
(possibly) different factor for each restraint, can be set to zero to
obtain the orientations from a free simulation</dd>
<dt><b>orire_tau: (0) [ps]</b></dt>
<dd>time constant for orientation restraints running average</dd>
<dt><b>orire_fitgrp: </b></dt>
<dd>fit group for orientation restraining, for a protein backbone is a good
choice</dd>
<dt><b>nstorireout: (100) [steps]</b></dt>
<dd>frequency to write the running time averaged and instantaneous orientations
for all restraints and the molecular order tensor to the energy file
(can make the energy file very large)</dd>
</dl>

<A NAME="free"><br>
<hr>
<h3><!--Idx-->Free energy calculations<!--EIdx--></h3>

<dl>
<dt><b>free_energy:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>Only use topology A.</dd>
<dt><b>yes</b></dt>
<dd>Interpolate between topology A (lambda=0) to topology B (lambda=1)
and write the derivative of the Hamiltonian with respect to lambda (as specified with <b>dhdl_derivatives</b>), or the Hamiltonian differences with respect to other lambda values (as specified with <b>foreign_lambda</b>) to
the energy file and/or to <tt>dhdl.xvg</tt>, where they can be processed by, for example <tt>g_bar</tt>.
The potentials, bond-lengths and angles are interpolated linearly as
described in the manual. When <b>sc_alpha</b> is larger than zero, soft-core
potentials are used for the LJ and Coulomb interactions.</dd>
</dl></dd>
<dt><b>init_lambda: (0)</b></dt>
<dd>starting value for lambda</dd>
<dt><b>delta_lambda: (0)</b></dt>
<dd>increment per time step for lambda</dd>
<dt><b>foreign_lambda: ()</b></dt>
<dd>Zero, one or more lambda values for which Delta H values will
be determined and written to dhdl.xvg every <b>nstdhdl</b> steps.
Free energy differences between different lambda values can then
be determined with <tt>g_bar</tt>.</dd>
<dt><b>dhdl_derivatives: (yes)</b></dt>
<dd>If yes (the default), the derivatives of the Hamiltonian with respect to lambda at each <b>nstdhdl</b> step are written out. These values are needed for interpolation of linear energy differences with <tt>g_bar</tt> (although the same can also be achieved with the right <b>foreign lambda</b> setting, that may not be as flexible), or with thermodynamic integration</dd>
<dt><b>sc_alpha: (0)</b></dt>
<dd>the soft-core parameter, a value of 0 results in linear interpolation of
the LJ and Coulomb interactions</dd>
<dt><b>sc_power: (0)</b></dt>
<dd>the power for lambda in the soft-core function,
only the values 1 and 2 are supported</dd>
<dt><b>sc_sigma: (0.3) [nm]</b></dt>
<dd>the soft-core sigma for particles which have a C6 or C12 parameter equal
to zero or a sigma smaller than <b>sc_sigma</b></dd>
<dt><b>couple-moltype:</b></dt>
<dd>Here one can supply a molecule type (as defined in the topology)
for calculating solvation or coupling free energies.
There is a special option <b>system</b> that couples all molecule types
in the system. This can be useful for equilibrating a system
starting from (nearly) random coordinates.
<b>free_energy</b> has to be turned on.
The Van der Waals interactions and/or charges in this molecule type can be
turned on or off between lambda=0 and lambda=1, depending on the settings
of <b>couple-lambda0</b> and <b>couple-lambda1</b>. If you want to decouple
one of several copies of a molecule, you need to copy and rename
the molecule definition in the topology.</dd>
<dt><b>couple-lambda0:</b></dt>
<dd><dl compact>
<dt><b>vdw-q</b></dt>
<dd>all interactions are on at lambda=0
<dt><b>vdw</b></dt>
<dd>the charges are zero (no Coulomb interactions) at lambda=0
<dt><b>q</b></dt>
<dd>the Van der Waals interactions are turned at lambda=0; soft-core interactions will be required to avoid singularities
<dt><b>none</b></dt>
<dd>the Van der Waals interactions are turned off and the charges are zero at lambda=0; soft-core interactions will be required to avoid singularities
</dl>
<dt><b>couple-lambda1:</b></dt>
<dd> analogous to <b>couple-lambda1</b>, but for lambda=1
<dt><b>couple-intramol:</b></dt>
<dd><dl compact>
<dt><b>no</b></dt>
<dd>All intra-molecular non-bonded interactions for moleculetype <b>couple-moltype</b> are replaced by exclusions and explicit pair interactions. In this manner the decoupled state of the molecule corresponds to the proper vacuum state without periodicity effects.
<dt><b>yes</b></dt>
<dd>The intra-molecular Van der Waals and Coulomb interactions are also turned on/off. This can be useful for partitioning free-energies of relatively large molecules, where the intra-molecular non-bonded interactions might lead to kinetically trapped vacuum conformations. The 1-4 pair interactions are not turned off.
</dl>
<dt><b>nstdhdl: (10)</b></dt>
<dd>the frequency for writing dH/dlambda and possibly Delta H to dhdl.xvg,
0 means no ouput, should be a multiple of <b>nstcalcenergy</b></dd>
<dt><b>separate_dhdl_file: (yes)</b></dt>
<dd><dl compact>
<dt><b>yes</b></dt>
<dd>the free energy values that are calculated (as specified with the <b>foreign-lambda</b> and <b>dhdl_derivatives</b> settings) are written out to a separate file, with the default name <tt>dhdl.xvg</tt>. This file can be used directly with <tt>g_bar</tt>.</dd>
<dt><b>no</b></dt>
<dd>The free energy values are written out to the energy output file (<tt>ener.edr</tt>, in accumulated blocks at every <b>nstenergy</b> steps), where they can be extracted with <tt>g_energy</tt> or used directly with <tt>g_bar</tt>.</dd>
</dl>
<dt><b>dh_hist_size: (0)</b></dt>
<dd>If nonzero, specifies the size of the histogram into which the Delta H values (specified with <b>foreign_lambda</b>) and the derivative dH/dl values are binned, and written to ener.edr. This can be used to save disk space while calculating free energy differences. One histogram gets written for each <b>foreign lambda</b> and two for the dH/dl, at every <b>nstenergy</b> step. Be aware that incorrect histogram settings (too small size or too wide bins) can introduce errors. Do not use histograms unless you're certain you need it.</dd>
<dt><b>dh_hist_spacing (0.1)</b></dt>
<dd>Specifies the bin width of the histograms, in energy units. Used in conjunction with <b>dh_hist_size</b>. This size limits the accuracy with which free energies can be calculated.  Do not use histograms unless you're certain you need it.</dd>
</dl>


<A NAME="neq"><br>
<hr>
<h3><!--Idx-->Non-equilibrium MD<!--EIdx--></h3>

<dl>
<dt><b>acc_grps: </b></dt>
<dd>groups for constant acceleration (e.g.: <tt>Protein Sol</tt>)
all atoms in groups Protein and Sol will experience constant acceleration
as specified in the <b>accelerate</b> line</dd>
<dt><b>accelerate: (0) [nm ps<sup>-2</sup>]</b></dt>
<dd>acceleration for <b>acc_grps</b>; x, y and z for each group
(e.g. <tt>0.1 0.0 0.0 -0.1 0.0 0.0</tt> means that first group has constant 
acceleration of 0.1 nm ps<sup>-2</sup> in X direction, second group the 
opposite).</dd>
<dt><b>freezegrps: </b></dt>
<dd>Groups that are to be frozen (i.e. their X, Y, and/or Z position will
not be updated; e.g. <tt>Lipid SOL</tt>). <b>freezedim</b> specifies for
which dimension the freezing applies.
To avoid spurious contibrutions to the virial and pressure due to large
forces between completely frozen atoms you need to use
<A HREF="#egexcl">energy group exclusions</A>, this also saves computing time.
Note that frozen coordinates are not subject to pressure scaling.</dd>
<dt><b>freezedim: </b></dt>
<dd>dimensions for which groups in <b>freezegrps</b> should be frozen, 
specify <tt>Y</tt> or <tt>N</tt> for X, Y and Z and for each group
(e.g. <tt>Y Y N N N N</tt> means that particles in the first group 
can move only in Z direction. The particles in the second group can 
move in any direction).</dd>
<dt><b>cos_acceleration: (0) [nm ps<sup>-2</sup>]</b></dt>
<dd>the amplitude of the acceleration profile for calculating the
<!--Idx-->viscosity<!--EIdx-->.
The acceleration is in the X-direction and the magnitude is 
<b>cos_acceleration</b> cos(2 pi z/boxheight).
Two terms are added to the energy file:
the amplitude of the velocity profile and 1/viscosity.</dd>
<dt><b><!--Idx-->deform<!--EIdx-->: (0 0 0 0 0 0) [nm ps<sup>-1</sup>]</b></dt>
<dd>The velocities of deformation for the box elements:
a(x) b(y) c(z) b(x) c(x) c(y). Each step the box elements
for which <b>deform</b> is non-zero are calculated as:
box(ts)+(t-ts)*deform, off-diagonal elements are corrected
for periodicity. The coordinates are transformed accordingly.
Frozen degrees of freedom are (purposely) also transformed.
The time ts is set to t at the first step and at steps at which
x and v are written to trajectory to ensure exact restarts.
Deformation can be used together with semiisotropic or anisotropic
pressure coupling when the appropriate compressibilities are set to zero.
The diagonal elements can be used to <!--Idx-->strain<!--EIdx--> a solid.
The off-diagonal elements can be used to <!--Idx-->shear<!--EIdx--> a solid
or a liquid.</dd>
</dl>

<A NAME="ef"><br>
<hr>
<h3><!--Idx-->Electric field<!--EIdx-->s</h3>

<dl>
<dt><b>E_x ; E_y ; E_z:</b></dt>
<dd>If you want to use an electric field in a direction, enter 3 numbers
after the appropriate <b>E_*</b>, the first number: the number of cosines,
only 1 is implemented (with frequency 0) so enter 1,
the second number: the strength of the electric field in
<b>V nm<sup>-1</sup></b>,
the third number: the phase of the cosine, you can enter any number here
since a cosine of frequency zero has no phase.</dd>
<dt><b>E_xt;  E_yt;  E_zt: </b></dt>
<dd>not implemented yet</dd>
</dl>
<br>

<hr>
<A NAME="qmmm"><br>
<h3><!--Idx-->Mixed quantum/classical molecular dynamics<!--EIdx--></h3>

<dl>
<dt><b>QMMM:</b></dt>
<dd><dl compact="compact">
<dt><b>no</b></dt>
<dd>No QM/MM.</dd>
<dt><b>yes</b></dt>
<dd>Do a QM/MM simulation. Several groups can be described at
different QM levels separately. These are specified in
the <b>QMMM-grps</b> field separated by spaces. The level of <i>ab
initio</i> theory at which the groups are described is speficied
by <b>QMmethod</b> and <b>QMbasis</b> Fields. Describing the
groups at different levels of theory is only possible with the ONIOM
QM/MM scheme, specified by <b>QMMMscheme</b>.</dd>
</dl></dd>

<dt><b>QMMM-grps:</b></dt>
<dd>groups to be descibed at the QM level</dd>

<dt><b>QMMMscheme:</b></dt>
<dd><dl compact="compact">
<dt><b>normal</b></dt>
<dd>normal QM/MM. There can only be one <b>QMMM-grps</b> that is modelled
at the <b>QMmethod</b> and <b>QMbasis</b> level of <i>ab initio</i>
theory. The rest of the system is described at the MM level. The QM
and MM subsystems interact as follows: MM point charges are included
in the QM one-electron hamiltonian and all Lennard-Jones interactions
are described at the MM level.</dd>
<dt><b>ONIOM</b></dt>
<dd>The interaction between the subsystem is described using the ONIOM
method by Morokuma and co-workers. There can be more than one <b>QMMM-grps</b> each modeled at a different level of QM theory
(<b>QMmethod</b> and <b>QMbasis</b>).
</dd></dl></dd>

<dt><b>QMmethod: (RHF)</b></dt>
<dd>Method used to compute the energy and gradients on the QM
atoms. Available methods are AM1, PM3, RHF, UHF, DFT, B3LYP, MP2,
CASSCF, and MMVB. For CASSCF, the number of electrons and orbitals
included in the active space is specified by <b>CASelectrons</b>
and <b>CASorbitals</b>. </dd>

<dt><b>QMbasis: (STO-3G)</b></dt>
<dd>Basisset used to expand the electronic wavefuntion. Only gaussian
bassisets are currently available, <i>i.e.</i> STO-3G, 3-21G, 3-21G*,
3-21+G*, 6-21G, 6-31G, 6-31G*, 6-31+G*, and 6-311G.</dd>

<dt><b>QMcharge: (0) [integer]</b></dt>
<dd>The total charge in <i>e</i> of the <b>QMMM-grps</b>. In case
there are more than one <b>QMMM-grps</b>, the total charge of each
ONIOM layer needs to be specified separately.</dd>

<dt><b>QMmult: (1) [integer]</b></dt>
<dd>The multiplicity of the <b>QMMM-grps</b>. In case there are more
than one <b>QMMM-grps</b>, the multiplicity of each ONIOM layer needs
to be specified separately.</dd>

<dt><b>CASorbitals: (0) [integer]</b></dt>
<dd>The number of orbitals to be included in the active space when
doing a CASSCF computation.</dd>

<dt><b>CASelectrons: (0) [integer]</b></dt>
<dd>The number of electrons to be included in the active space when
doing a CASSCF computation.</dd>

<dt><b>SH:</b></dt>
<dd><dl compact="compact">
<dt><b>no</b></dt>
<dd>No surface hopping. The system is always in the electronic
ground-state.</dd>
<dt><b>yes</b></dt>
<dd>Do a QM/MM MD simulation on the excited state-potential energy
surface and enforce a <i>diabatic</i> hop to the ground-state when the
system hits the conical intersection hyperline in the course the
simulation. This option only works in combination with the CASSCF
method.</dd>
</dl>
</dl>

<A NAME="gbsa"><br>
<hr>
<h3>Implicit solvent</h3>

<dl>
<dt><b>implicit_solvent:</b></dt>
<dd><dl compact="compact">
<dt><b>no</b></dt>
<dd>No implicit solvent</dd>
<dt><b>GBSA</b></dt>
<dd>Do a simulation with implicit solvent using the Generalized Born formalism. 
Three different methods for calculating the Born radii are available, Still, HCT and
OBC. These are specified with the <b>gb_algorithm</b> field. The non-polar solvation
is specified with the <b>sa_algorithm</b> field.</dd>
</dl>

<dt><b>gb_algorithm:</b></dt>
<dd><dl compact="compact">
<dt><b>Still</b></dt>
<dd>Use the Still method to calculate the Born radii</dd>
<dt><b>HCT</b></dt>
<dd>Use the Hawkins-Cramer-Truhlar method to calculate the Born radii</dd>
<dt><b>OBC</b></dt>
<dd>Use the Onufriev-Bashford-Case method to calculate the Born radii</dd>
</dl>

<dt><b>nstgbradii: (1) [steps]</b></dt>
<dd>Frequency to (re)-calculate the Born radii. For most practial purposes,
setting a value larger than 1 violates energy conservation and leads to
unstable trajectories.</dd>

<dt><b>rgbradii: (1.0) [nm]</b></dt>
<dd>Cut-off for the calculation of the Born radii. Currently must be equal to rlist</dd>

<dt><b>gb_epsilon_solvent: (80)</b></dt>
<dd>Dielectric constant for the implicit solvent</dd>

<dt><b>gb_saltconc: (0) [M]</b></dt>
<dd>Salt concentration for implicit solvent models, currently not used</dd>

<dt><b>gb_obc_alpha (1); gb_obc_beta (0.8); gb_obc_gamma (4.85);</b></dt>
<dd>Scale factors for the OBC model. Default values are OBC(II).
Values for OBC(I) are 0.8, 0 and 2.91 respectively</dd>

<dt><b>gb_dielectric_offset: (0.009) [nm]</b></dt>
<dd>Distance for the di-electric offset when calculating the Born radii. This is
the offset between the center of each atom the center of the polarization energy 
for the corresponding atom</dd>

<dt><b>sa_algorithm</b></dt>
<dd><dl compact="compact">
<dt><b>Ace-approximation</b></dt>
<dd>Use an Ace-type approximation (default)</dd>
<dt><b>None</b></dt>
<dd>No non-polar solvation calculation done. For GBSA only the polar part gets 
calculated</dd>
</dl>

<dt><b>sa_surface_tension: [kJ mol<sup>-1</sup> nm<sup>-2</sup>]</b></dt>
<dd>Default value for surface tension with SA algorithms. The default value is -1; 
Note that if this default value is not changed
it will be overridden by <tt>grompp</tt> using values that are specific for the choice
of radii algorithm (0.0049 kcal/mol/Angstrom<sup>2</sup> for Still, 0.0054 kcal/mol/Angstrom<sup>2</sup> 
for HCT/OBC)

Setting it to 0 will while using an sa_algorithm other than None means 
no non-polar calculations are done.
</dd>
</dl>   

<A NAME="user"><br>
<hr>
<h3>User defined thingies</h3>

<dl>
<dt><b>user1_grps; user2_grps: </b></dt>
<dt><b>userint1 (0); userint2 (0); userint3 (0); userint4 (0)</b></dt>
<dt><b>userreal1 (0); userreal2 (0); userreal3 (0); userreal4 (0)</b></dt>
<dd>These you can use if you modify code. You can pass integers and
reals to your subroutine. Check the inputrec definition in
<tt>src/include/types/inputrec.h</tt></dd>

</dl>

<A NAME="idx"><br>
<hr>
<h3>Index</h3>

<P>

<multicol cols=4> 
<A HREF="#neq">acc_grps</A><br>
<A HREF="#neq">accelerate</A><br>
<A HREF="#sa">annealing</A><br>
<A HREF="#sa">annealing_npoints</A><br>
<A HREF="#sa">annealing_time</A><br>
<A HREF="#sa">annealing_temp</A><br>
<A HREF="#ld">bd_fric</A><br>
<A HREF="#vdw">bDispCorr</A><br>
<A HREF="#run">comm_mode</A><br>
<A HREF="#run">comm_grps</A><br>
<A HREF="#pc">compressibility</A><br>
<A HREF="#bond">constraint_algorithm</A><br>
<A HREF="#bond">constraints</A><br>
<A HREF="#neq">cos_acceleration</A><br>
<A HREF="#el">coulombtype</A><br>
<A HREF="#free">couple-intramol</A><br>
<A HREF="#free">couple-lambda0</A><br>
<A HREF="#free">couple-lambda1</A><br>
<A HREF="#free">couple-moltype</A><br>
<A HREF="#pp">define</A><br>
<A HREF="#neq">deform</A><br>
<A HREF="#free">delta_lambda</A><br>
<A HREF="#nmr">disre</A><br>
<A HREF="#nmr">disre_weighting</A><br>
<A HREF="#nmr">disre_mixed</A><br>
<A HREF="#nmr">disre_fc</A><br>
<A HREF="#nmr">disre_tau</A><br>
<A HREF="#run">dt</A><br>
<A HREF="#em">emstep</A><br>
<A HREF="#em">emtol</A><br>
<A HREF="#egexcl">energygrp_excl</A><br>
<A HREF="#table">energygrp_table</A><br>
<A HREF="#out">energygrps</A><br>
<A HREF="#el2">epsilon_r</A><br>
<A HREF="#el2">epsilon_rf</A><br>
<A HREF="#ewald">ewald_rtol</A><br>
<A HREF="#ewald">ewald_geometry</A><br>
<A HREF="#ewald">epsilon_surface</A><br>
<A HREF="#ef">E_x</A><br>
<A HREF="#ef">E_xt</A><br>
<A HREF="#ef">E_y</A><br>
<A HREF="#ef">E_yt</A><br>
<A HREF="#ef">E_z</A><br>
<A HREF="#ef">E_zt </A><br>
<A HREF="#xmdrun">fcstep</A><br>
<A HREF="#ewald">fourier_nx</A><br>
<A HREF="#ewald">fourier_ny</A><br>
<A HREF="#ewald">fourier_nz</A><br>
<A HREF="#ewald">fourierspacing</A><br>
<A HREF="#free">free_energy</A><br>
<A HREF="#neq">freezedim </A><br>
<A HREF="#neq">freezegrps</A><br>
<A HREF="#vel">gen_seed</A><br>
<A HREF="#vel">gen_temp</A><br>
<A HREF="#vel">gen_vel</A><br>
<A HREF="#pp">include</A><br>
<A HREF="#free">init_lambda</A><br>
<A HREF="#run">init_step</A><br>
<A HREF="#run">integrator</A><br>
<A HREF="#ld">ld_seed</A><br>
<A HREF="#bond2">lincs_iter</A><br>
<A HREF="#bond2">lincs_order</A><br>
<A HREF="#bond2">lincs_warnangle</A><br>
<A HREF="#bond2">morse</A><br>
<A HREF="#em">nbfgscorr</A><br>
<A HREF="#xmdrun">niter</A><br>
<A HREF="#tc">nh-chain-length</A><br>
<A HREF="#em">nstcgsteep</A><br>
<A HREF="#out">nstcalcenergy</A><br>
<A HREF="#run">nstcomm</A><br>
<A HREF="#nmr">nstdisreout</A><br>
<A HREF="#out">nstenergy</A><br>
<A HREF="#run">nsteps</A><br>
<A HREF="#out">nstfout</A><br>
<A HREF="#nl">nstlist</A><br>
<A HREF="#out">nstlog</A><br>
<A HREF="#pc">nstpcouple</A><br>
<A HREF="#tc">nsttcouple</A><br>
<A HREF="#out">nstvout</A><br>
<A HREF="#out">nstxout</A><br>
<A HREF="#out">nstxtcout</A><br>
<A HREF="#nl">ns_type</A><br>
<A HREF="#wall">nwall</A><br>
<A HREF="#ewald">optimize_fft</A><br>
<A HREF="#nmr2">orire</A><br>
<A HREF="#nmr2">orire_fc</A><br>
<A HREF="#nmr2">orire_tau</A><br>
<A HREF="#nmr2">orire_fitgrp</A><br>
<A HREF="#nmr2">nstorireout</A><br>
<A HREF="#nl">pbc</A><br>
<A HREF="#pc">pcoupl</A><br>
<A HREF="#pc">pcoupltype</A><br>
<A HREF="#nl">periodic_molecules</A><br>
<A HREF="#ewald">pme_order</A><br>
<A HREF="#pull">pull</A><br>
<A HREF="#pc">refcoord_scaling</A><br>
<A HREF="#pc">ref_p</A><br>
<A HREF="#tc">ref_t</A><br>
<A HREF="#el2">rcoulomb_switch</A><br>
<A HREF="#el2">rcoulomb</A><br>
<A HREF="#nl">rlist</A><br>
<A HREF="#nl">rlistlong</A><br>
<A HREF="#tpi">rtpi</A><br>
<A HREF="#vdw">rvdw_switch</A><br>
<A HREF="#vdw">rvdw</A><br>
<A HREF="#free">sc_alpha</A><br>
<A HREF="#free">sc_power</A><br>
<A HREF="#free">sc_sigma</A><br>
<A HREF="#bond2">shake_tol</A><br>
<A HREF="#table">table-extension</A><br>
<A HREF="#pc">tau_p</A><br>
<A HREF="#tc">tau_t</A><br>
<A HREF="#tc">tc_grps</A><br>
<A HREF="#tc">tcoupl</A><br>
<A HREF="#run">tinit</A><br>
<A HREF="#bond">continuation</A><br>
<A HREF="#user">user1_grps</A><br>
<A HREF="#user">user2_grps</A><br>
<A HREF="#user">userint1</A><br>
<A HREF="#user">userint2</A><br>
<A HREF="#user">userint3</A><br>
<A HREF="#user">userint4</A><br>
<A HREF="#user">userreal1</A><br>
<A HREF="#user">userreal2</A><br>
<A HREF="#user">userreal3</A><br>
<A HREF="#user">userreal4</A><br>
<A HREF="#el">vdwtype</A><br>
<A HREF="#out">xtc_grps</A><br>
<A HREF="#out">xtc_precision</A><br>
<A HREF="#sa">zero_temp_time</A><br>
<A HREF="#walls">wall_atomtype</A><br>
<A HREF="#walls">wall_density</A><br>
<A HREF="#walls">wall_ewald_zfac</A><br>
<A HREF="#walls">wall_r_linpot</A><br>
<A HREF="#walls">wall_type</A><br>
</multicol>

<hr>
<div ALIGN=RIGHT>
<font size="-1"><a href="http://www.gromacs.org">http://www.gromacs.org</a></font><br>

</div>
</BODY>
</HTML>

